package app

import (
	"fmt"
	"time"
	"xy_api/pkg/config"
	"xy_api/pkg/logger"
	"xy_api/pkg/model"
	"xy_api/pkg/redis"
	//"xy_api/pkg/mq"
	//"xy_api/pkg/pool"
)

func SetupPool() {
	// 初始化 Logger
	logger.InitLogger(
		config.GetString("log.filename"),
		config.GetInt("log.max_size"),
		config.GetInt("log.max_backup"),
		config.GetInt("log.max_age"),
		config.GetBool("log.compress"),
		config.GetString("log.type"),
		config.GetString("log.level"),
	)
	// 启动mysql连接池
	db := model.ConnectDB(logger.NewGormLogger())
	sqlDB, _ := db.DB()
	// 设置打开数据库连接的最大数量
	sqlDB.SetMaxOpenConns(config.GetInt("database.mysql.max_open_connections"))
	// 设置最大空闲数
	sqlDB.SetMaxIdleConns(config.GetInt("database.mysql.max_idle_connections"))
	// 设置每个连接的超时时间
	sqlDB.SetConnMaxLifetime(time.Duration(config.GetInt("database.mysql.max_life_seconds")) * time.Second)
	// 启动redis连接池
	redis.ConnectRedis(
		fmt.Sprintf("%v:%v", config.GetString("redis.host"), config.GetString("redis.port")),
		config.GetString("redis.username"),
		config.GetString("redis.password"),
		config.GetInt("redis.database"),
	)

	//// 启动协程池
	//pool.ConnectPool()
	//// 启动mq
	//mq.ConnectMQ()
}
